home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / etc / init.d / sysklogd < prev    next >
Encoding:
Text File  |  2009-01-23  |  3.5 KB  |  160 lines

  1. #! /bin/sh
  2. # /etc/init.d/sysklogd: start the system log daemon.
  3.  
  4. ### BEGIN INIT INFO
  5. # Provides:             sysklogd
  6. # Required-Start:       $remote_fs $time
  7. # Required-Stop:        $remote_fs $time
  8. # Should-Start:         $network
  9. # Should-Stop:          $network
  10. # Default-Start:        2 3 4 5
  11. # Default-Stop:         1
  12. # Short-Description:    System logger
  13. ### END INIT INFO
  14.  
  15. PATH=/bin:/usr/bin:/sbin:/usr/sbin
  16.  
  17. pidfile=/var/run/syslogd.pid
  18. binpath=/sbin/syslogd
  19.  
  20. test -x $binpath || exit 0
  21.  
  22. # syslogd options should be set in /etc/default/syslogd
  23. SYSLOGD=""
  24.  
  25. # user to run syslogd as - this can overriden in /etc/default/syslogd
  26. USER="syslog"
  27.  
  28. test ! -r /etc/default/syslogd || . /etc/default/syslogd
  29.  
  30. # allow ltsp to override
  31. test ! -r /etc/ltsp/syslogd || . /etc/ltsp/syslogd
  32.  
  33. # Add unbound chroot if it's installed
  34. test ! -r /etc/unbound/syslogd || . /etc/unbound/syslogd
  35.  
  36. # Figure out under which user syslogd should be running as
  37. if echo ${SYSLOGD} | grep -q '^.*-u[[:space:]]*\([[:alnum:]]*\)[[:space:]]*.*$'
  38. then
  39.     # A specific user has been set on the command line, try to extract it.
  40.     USER=$(echo ${SYSLOGD} | sed -e 's/^.*-u[[:space:]]*\([[:alnum:]]*\)[[:space:]]*.*$/\1/')
  41. else
  42.     # By default, run syslogd under the syslog user
  43.     SYSLOGD="${SYSLOGD} -u ${USER}"
  44. fi
  45.  
  46. # Unable to get the user under which syslogd should be running, stop.
  47. if [ -z "${USER}" ]
  48. then
  49.     log_failure_msg "Unable to get syslog user"
  50.     exit 1
  51. fi
  52.  
  53. . /lib/lsb/init-functions
  54.  
  55. create_xconsole()
  56. {
  57.     # Only proceed if /dev/xconsole is used at all
  58.     if ! grep -q '^[^#].*/dev/xconsole' /etc/syslog.conf
  59.     then
  60.     return
  61.     fi
  62.  
  63.     if [ ! -e /dev/xconsole ]; then
  64.     mknod -m 640 /dev/xconsole p
  65.     else
  66.     chmod 0640 /dev/xconsole
  67.     fi
  68.  
  69.     chown ${USER}:adm /dev/xconsole
  70.     test ! -x /sbin/restorecon || /sbin/restorecon /dev/xconsole
  71.  
  72. }
  73.  
  74. fix_log_ownership()
  75. {
  76.     for l in `syslogd-listfiles -a`
  77.     do
  78.         chown ${USER}:adm $l
  79.     done
  80. }
  81.  
  82. running()
  83. {
  84.     # No pidfile, probably no daemon present
  85.     #
  86.     if [ ! -f $pidfile ]
  87.     then
  88.     return 1
  89.     fi
  90.  
  91.     pid=`cat $pidfile`
  92.  
  93.     # No pid, probably no daemon present
  94.     #
  95.     if [ -z "$pid" ]
  96.     then
  97.     return 1
  98.     fi
  99.  
  100.     if [ ! -d /proc/$pid ]
  101.     then
  102.     return 1
  103.     fi
  104.  
  105.     cmd=`cat /proc/$pid/cmdline | tr "\000" "\n"|head -n 1`
  106.  
  107.     # No syslogd?
  108.     #
  109.     if [ "$cmd" != "$binpath" ]
  110.     then
  111.     return 1
  112.     fi
  113.  
  114.     return 0
  115. }
  116.  
  117. case "$1" in
  118.   start)
  119.     log_begin_msg "Starting system log daemon..."
  120.     create_xconsole
  121.     fix_log_ownership
  122.     start-stop-daemon --start --quiet --pidfile $pidfile --name syslogd --startas $binpath -- $SYSLOGD
  123.     log_end_msg $?
  124.     ;;
  125.   stop)
  126.     log_begin_msg "Stopping system log daemon..."
  127.     start-stop-daemon --stop --quiet --pidfile $pidfile --name syslogd
  128.     log_end_msg $?
  129.     ;;
  130.   reload|force-reload)
  131.     log_begin_msg "Reloading system log daemon..."
  132.     fix_log_ownership
  133.     start-stop-daemon --stop --quiet --signal 1 --pidfile $pidfile --name syslogd
  134.     log_end_msg $?
  135.     ;;
  136.   restart)
  137.     log_begin_msg "Restarting system log daemon..."
  138.     start-stop-daemon --stop --retry 5 --quiet --pidfile $pidfile --name syslogd
  139.     fix_log_ownership
  140.     start-stop-daemon --start --quiet --pidfile $pidfile --name syslogd --startas $binpath -- $SYSLOGD
  141.     log_end_msg $?
  142.     ;;
  143.   reload-or-restart)
  144.     if running
  145.     then
  146.     $0 reload
  147.     else
  148.     $0 start
  149.     fi
  150.     ;;
  151.   status)
  152.     status_of_proc -p $pidfile $binpath syslogd && exit 0 || exit $?
  153.     ;;
  154.   *)
  155.     log_success_msg "Usage: /etc/init.d/sysklogd {start|stop|reload|restart|force-reload|reload-or-restart|status}"
  156.     exit 1
  157. esac
  158.  
  159. exit 0
  160.